"""
字符串、列表、元组都支持切片操作。

切片的语法：[起始:结束:步长]
注意：选取的区间从"起始"位开始，到"结束"位的前一位结束（不包含结束位本身)，步长表示选取间隔

# 索引下标从0开始
"""
my_str = 'abcdefghijklmn'
print(len(my_str))    # 长度14
print(my_str[4])      # 获取第四位 e
print(my_str[4:6])    # 获取第四位至第五位，不包括结束位置。相当于左闭右开   ef
print(my_str[4:9:2])  # 获取第四位至第八位，间隔为2.   egi
print(my_str[::2])    # 获取全部，可省略起始和结束，间隔为2    acegikm
print(my_str[-3:-1])  # 获取第-3位至-2位，间隔默认为1   lm
print(my_str[-1:-3:-1])  # 获取第-1位至-2位,并倒叙打印         nm
print(my_str[::-1])    # 获取全部，并倒叙打印    nmlkjihgfedcba    步长为负数，是从右向左读取
print(my_str[6:2:-1])  #  gfed

print()


"""
find rfind count replace split index rindex
"""


my_str2 = 'sui duis'
print(my_str2.find("s"))    # 查找到返回第一个下标值，且从左向右查找  0
print(my_str2.rfind("s"))   # 查找到返回第一个下标值，且从右向左查找  7
print(my_str2.find("pp"))   # 查找不到返回-1
print(my_str2.count("s"))   # 字符串中有几个s    2
# print(my_str2.index("pp"))  # 查找不到返回报错
print(my_str2.rindex("s"))   # 查找到返回第一个下标值，且从右向左查找  6
print(my_str2.replace("ui", '666'))  # 将字符串中所有ui都替换成新值666
print(my_str2.replace("ui", '666', 1))  # 将字符串中ui都替换成新值666,替换1次.此方法不能完成替换第几个
print(my_str2.split("ui"))   # 将ui当做逗号,进行分割  ['s', 'd', 's']

"""
title  capitalize  startswith  endswith  upper  lower
"""

print(my_str2.title())      # 字符串中每个单词首字母大写  Sui Duis
print(my_str2.capitalize())   # 字符串首字母大写  Sui duis
print(my_str2.startswith("su"))   # 字符串是否以‘su’开头     True
print(my_str2.endswith("su"))   # 字符串是否以‘su’结尾   False
print(my_str2.upper())   # 将字符串中所有小写变成大写   SUI DUIS
print(my_str2.lower())   # 将字符串中所有大写变成小写   sui duis


"""
ljust  rjust  center   strip  lstrip  rstrip  join
"""

my_str3 = 'sui duis'
print(my_str3.ljust(10, '6'))   # 填充右边完成10长度,并且填充内容必须是单字符   sui duis66
print(my_str3.rjust(10, '6'))   # 填充左边完成10长度,并且填充内容必须是单字符 66sui duis
print(my_str3.center(10, '6'))   # 填充中间，完成10长度,并且填充内容必须是单字符 6sui duis6

my_str4 = ' sui duis '
print(my_str4.strip())           # 去除两端空格，sui duis
print(my_str4.lstrip())           # 去除左端空格，sui duis
print(my_str4.rstrip())           # 去除右端空格， sui duis


my_str5 = ["123", "123123"]  # split 字符串切割成列表
ret = ''.join(my_str5)    # 列表合并字符串
print(ret)           # 123123123



# help(str.count)    # 查找帮助 字符串中count 的用法


"""
数据类型： int str float list couple dict bool
"""

my_list = [3, "姓名", 3.14, True]
print(my_list[1])
print(my_list[1:3])
print(len(my_list))


my_list2 = list("agfubj")  # 列表的第二种写法
print(my_list2)    # ['a', 'g', 'f', 'u', 'b', 'j']

for p in my_list:
    print(p)

print("~" * 30)


i = 0
while i < len(my_list):
    print(my_list[i])
    i += 1






